Networked computing devices communicate with one another over Transmission Control Protocol/Internet Protocol (TCP/IP). A networked device must be associated with a network address (e.g., an IP address) in order to communicate with other networked devices over a TCP/IP network. Dynamic Host Configuration Protocol (DHCP) is a network management protocol for dynamically assigning network addresses and other configuration parameters to networked devices. Generally, a DHCP server receives a DHCP request from a networked device and assigns an IP address and configuration parameters to the requesting device.
Distributed computing networks may include several hardware servers, each of which requires a dedicated IP address. Hardware servers may host one or more virtual machines, each of which also requires a dedicated IP address to independently communicate with other network components. Conventionally, IP addresses are assigned to hardware servers and their virtual machines by a centralized DHCP server. The centralized DHCP server is accessible over a physical network to which the hardware servers are connected.
A centralized DHCP server may present reliability, scalability and debuggability challenges. If a centralized DHCP server malfunctions or is otherwise unavailable, all hardware servers and virtual machines served by this DHCP server are impacted. With increased server cluster sizes and virtual machine densities, a single DHCP server may quickly become overwhelmed with DHCP traffic and its corresponding processing requirements. Moreover, DHCP discover and DHCP request packets require broadcast functionality in the physical network, which complicates physical network configuration (e.g., often requiring a DHCP relay) and end-to-end debugging of the DHCP channel.
DHCP implementations which address one or more of the foregoing issues are desired.